# Makefile for JSON demo

# 编译器
CC = gcc

# 当前目录下的cJSON库路径
CJSON_PATH = ./cJSON-1.7.15

# 编译选项
CFLAGS = -Wall -Wextra -I$(CJSON_PATH)

# 链接选项
LDFLAGS = -L$(CJSON_PATH) -lcjson -Wl,-rpath=$(CJSON_PATH)

# 可执行文件名
TARGET = json_demo

# 源文件
SRCS = json_demo.c

# 目标文件
OBJS = $(SRCS:.c=.o)

# 默认目标
all: build_cjson $(TARGET)

# 先编译cJSON库
build_cjson:
	cd $(CJSON_PATH) && $(MAKE)

# 生成可执行文件
$(TARGET): $(OBJS)
	$(CC) -o $@ $^ $(LDFLAGS)

# 编译源文件
%.o: %.c
	$(CC) $(CFLAGS) -c $< -o $@

# 清理编译产物
clean:
	 rm -f $(OBJS) $(TARGET)
	 cd $(CJSON_PATH) && $(MAKE) clean

# 运行程序
run: $(TARGET)
	./$(TARGET)

# 调试信息
debug:
	@echo "Compiler: $(CC)"
	@echo "CFLAGS: $(CFLAGS)"
	@echo "LDFLAGS: $(LDFLAGS)"
	@echo "CJSON_PATH: $(CJSON_PATH)"

.PHONY: all clean run debug build_cjson